<?php


namespace app\common\models;


use app\common\facades\auth\Auth;
use app\common\traits\BaseModelOptionTrait;
use think\Model;

class User extends Model
{
    use BaseModelOptionTrait;

    protected $table = 'xiangji_users';



    // 创建用户时创建用户相关性数据
    public static function onAfterInsert($user)
    {
        //  用户钱包创建
        UserWallet::create(['user_id' => $user->id]);
        //  恩爱值账户
        LoveScore::create(['user_id' => $user->id]);
        //  恋人关系
        UserLover::create(['user_id' => $user->id]);
    }

    // 用户信息更新后的一些操作
    public static function onAfterUpdate($user)
    {

    }

    // 用户自己添加的纪念日
    public function anniversaries()
    {
        return $this->hasMany(Anniversary::class);
    }

    // 虚拟对象
    public function dummy()
    {
        return $this->hasOne(Dummy::class);
    }

    // 现实对象，恋人，爱人
    public function lover()
    {
        // 自关联
        return $this->hasOne(UserLover::class);
    }

    // 用户签到:一对多
    public function signs()
    {
        return $this->hasMany(UserSign::class);
    }

    // 恩爱值
    public function loveScore()
    {
        return $this->hasOne(LoveScore::class);
    }

    // 恩爱值记录
    public function love_score_logs()
    {
        return $this->hasMany(LoveScoreLog::class);
    }

    // 用户钱包
    public function wallet()
    {
        return $this->hasOne(UserWallet::class);
    }

    // 用户钱包日志
    public function walletLogs()
    {
        return $this->hasMany(UserWalletLog::class);
    }

    // 用户提现
    public function withdraw()
    {
        return $this->hasMany(UserWithdraw::class);
    }

    // 恋爱日记
    public function diaries()
    {
        return $this->hasMany(LoveDiary::class);
    }

    // 用户恋爱成就
    public function achieves()
    {
        return $this->hasMany(LoveAchieve::class);
    }

}
